/**
 *
 * 用来建立websocket的长连接
 */

package com.example.moonshine.baidumap.Util;


import android.util.Log;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okio.ByteString;

//public class WebsocketClient {
//
//
//        private static final int NORMAL_CLOSURE_STATUS = 1000;
//
//        private static OkHttpClient sClient;
//        private static WebSocket sWebSocket;
//        public static synchronized void startRequest() {
//
//            if (sClient == null) {
//                sClient = new OkHttpClient();
//            }
//            if (sWebSocket == null) {
//                OkHttpClient mOkHttpClient = new OkHttpClient.Builder()
//                        .readTimeout(30000, TimeUnit.SECONDS)//设置读取超时时间
//                        .writeTimeout(30000, TimeUnit.SECONDS)//设置写的超时时间
//                        .connectTimeout(30000, TimeUnit.SECONDS)//设置连接超时时间
//                        .build();
//                Request request = new Request.Builder().url("ws://192.168.28.65:8080/pipe-network/websocket").build();
//                EchoWebSocketListener listener = new EchoWebSocketListener();
//                sWebSocket = sClient.newWebSocket(request, listener);
//            }
//        }
//        private static void sendMessage(WebSocket webSocket) {
//            webSocket.send("1");
//            webSocket.send(ByteString.decodeHex("deadbeef"));
//        }
//
//        public static void sendMessage() {
//            WebSocket webSocket;
//            synchronized (WebsocketClient.class) {
//                webSocket = sWebSocket;
//            }
//            if (webSocket != null) {
//                sendMessage(webSocket);
//            }
//        }
//
//        public static synchronized void closeWebSocket() {
//            if (sWebSocket != null) {
//                sWebSocket.close(NORMAL_CLOSURE_STATUS, "Goodbye!");
//                sWebSocket = null;
//            }
//        }
//
//        public static synchronized void destroy() {
//            if (sClient != null) {
//                sClient.dispatcher().executorService().shutdown();
//                sClient = null;
//            }
//        }
//
//        private static void resetWebSocket() {
//            synchronized (WebsocketClient.class) {
//                sWebSocket = null;
//            }
//        }
//
//        public static class EchoWebSocketListener extends WebSocketListener {
//            private static final String TAG = "EchoWebSocketListener";
//
//            @Override
//            public void onOpen(WebSocket webSocket, Response response) {
//                sendMessage(webSocket);
//            }
//
//            @Override
//            public void onMessage(WebSocket webSocket, String text) {
//                Log.i(TAG, "Receiving: " + text);
//            }
//
//            @Override
//            public void onMessage(WebSocket webSocket, ByteString bytes) {
//                Log.i(TAG, "Receiving: " + bytes.hex());
//            }
//
//            @Override
//            public void onClosing(WebSocket webSocket, int code, String reason) {
//                webSocket.close(NORMAL_CLOSURE_STATUS, null);
//                Log.i(TAG, "Closing: " + code + " " + reason);
//                resetWebSocket();
//            }
//
//            @Override
//            public void onClosed(WebSocket webSocket, int code, String reason) {
//                Log.i(TAG, "Closed: " + code + " " + reason);
//            }
//
//            @Override
//            public void onFailure(WebSocket webSocket, Throwable t, Response response) {
//                t.printStackTrace();
//                resetWebSocket();
//            }
//        }
//
//}
